@echo off
chcp 65001
echo ========================================
echo Git凭据配置脚本
echo ========================================
echo.

echo 选择身份验证方式：
echo 1. 配置用户名密码存储
echo 2. 使用个人访问令牌
echo 3. 配置SSH密钥
echo 4. 临时推送（每次输入密码）
echo.
set /p choice="请选择 (1-4): "

if "%choice%"=="1" goto :username_password
if "%choice%"=="2" goto :access_token
if "%choice%"=="3" goto :ssh_key
if "%choice%"=="4" goto :manual_push
goto :invalid_choice

:username_password
echo.
echo ========================================
echo 配置用户名密码存储
echo ========================================
echo.
echo 注意：这种方式会将密码存储在本地，相对不安全
echo.

:: 配置Git凭据存储
git config --global credential.helper store
echo Git凭据存储已启用

:: 设置用户信息
set /p username="请输入Gitee用户名 (liyuanwei100): "
if "%username%"=="" set username=liyuanwei100

git config --global user.name "%username%"
echo 用户名已设置为: %username%

set /p email="请输入邮箱地址: "
git config --global user.email "%email%"
echo 邮箱已设置为: %email%

echo.
echo 现在执行推送，首次需要输入密码：
git push -u origin master

goto :end

:access_token
echo.
echo ========================================
echo 使用个人访问令牌
echo ========================================
echo.
echo 请按以下步骤操作：
echo.
echo 1. 登录Gitee (https://gitee.com)
echo 2. 点击右上角头像 → 设置
echo 3. 左侧菜单：安全设置 → 私人令牌
echo 4. 点击"生成新令牌"
echo 5. 令牌描述：xxpay项目推送
echo 6. 权限选择：projects 和 api
echo 7. 点击提交并复制生成的令牌
echo.
echo 令牌示例格式：ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
echo.
set /p token="请粘贴您的个人访问令牌: "

if "%token%"=="" (
    echo 令牌不能为空
    goto :access_token
)

:: 配置凭据存储
git config --global credential.helper store

:: 创建凭据文件
echo https://liyuanwei100:%token%@gitee.com > "%USERPROFILE%\.git-credentials"

echo.
echo 个人访问令牌配置完成
echo 现在执行推送：
git push -u origin master

goto :end

:ssh_key
echo.
echo ========================================
echo 配置SSH密钥
echo ========================================
echo.

:: 检查是否已有SSH密钥
if exist "%USERPROFILE%\.ssh\id_rsa.pub" (
    echo 发现现有SSH公钥：
    type "%USERPROFILE%\.ssh\id_rsa.pub"
    echo.
    set /p use_existing="是否使用现有密钥？(Y/n): "
    if /i not "%use_existing%"=="n" goto :add_ssh_key
)

:: 生成新的SSH密钥
echo 生成新的SSH密钥...
set /p email="请输入邮箱地址: "
ssh-keygen -t rsa -b 4096 -C "%email%" -f "%USERPROFILE%\.ssh\id_rsa" -N ""

:add_ssh_key
echo.
echo 您的SSH公钥内容：
echo ========================================
type "%USERPROFILE%\.ssh\id_rsa.pub"
echo ========================================
echo.
echo 请按以下步骤添加SSH密钥到Gitee：
echo 1. 复制上面的公钥内容
echo 2. 登录Gitee (https://gitee.com)
echo 3. 点击右上角头像 → 设置
echo 4. 左侧菜单：安全设置 → SSH公钥
echo 5. 点击"添加公钥"
echo 6. 标题：xxpay项目密钥
echo 7. 粘贴公钥内容
echo 8. 点击确定
echo.
pause

:: 测试SSH连接
echo 测试SSH连接...
ssh -T git@gitee.com

:: 更改远程仓库URL为SSH格式
git remote set-url origin git@gitee.com:liyuanwei100/xxpay.git
echo 远程仓库URL已更改为SSH格式

echo.
echo 现在执行推送：
git push -u origin master

goto :end

:manual_push
echo.
echo ========================================
echo 手动推送（每次输入密码）
echo ========================================
echo.
echo 执行推送命令，需要输入用户名和密码：
echo 用户名: liyuanwei100
echo 密码: 您的Gitee密码或个人访问令牌
echo.
git push -u origin master

goto :end

:invalid_choice
echo 无效选择，请重新运行脚本
goto :end

:end
echo.
echo ========================================
echo 配置完成
echo ========================================
echo.
echo 如果推送成功，您的代码已上传到：
echo https://gitee.com/liyuanwei100/xxpay
echo.
echo 后续推送只需要执行：
echo git add .
echo git commit -m "提交说明"
echo git push
echo.
pause
